#pragma once
#include "stdafx.h"

class CBaseApp
{
public:
    virtual ~CBaseApp() {}
    virtual void Release() = 0;
    virtual HRESULT OnCreateDevice( ID3D11Device* pD11Device, ID3D11DeviceContext* pD11DeviceContext, IDXGISwapChain* pSwapChain ) = 0;
    virtual void OnResetDevice( ID3D11Device* pD11Device ) = 0;
    virtual void OnLostDevice() = 0;
    virtual void OnDestroyDevice() = 0;
    virtual void OnUpdateFrame( ID3D11DeviceContext* pD11DeviceContext, IDXGISwapChain* pSwapChain, float elapsedTime ) = 0;
    virtual void OnRenderFrame( ID3D11DeviceContext* pD11DeviceContext, IDXGISwapChain* pSwapChain, ID3D11RenderTargetView* pRenderTargetView, ID3D11DepthStencilView* pDepthStencilView, float elapsedTime ) = 0;
    virtual void ProcessInput( long xDelta, long yDelta, long zDelta, BOOL* pMouseButtons, BOOL* pPressedKeys, float elapsedTime ) = 0;
};